﻿using StardewModdingAPI;
using WorseGame.Common;
using WorseGame.Content;

namespace WorseGame
{
    public class ModEntry : Mod
    {
        #region 功能
        public 开局负债? 开局负债;
        public 钓鱼限制? 钓鱼限制;
        public 移动体力消耗? 移动体力消耗;
        public 工具耐久? 工具耐久;
        public 失眠? 失眠;
        public 负重系统? 负重系统;
        public 任务过期? 任务过期系统;
        public 动物饿死? 动物饿死系统;
        public 体力限制进食? 体力限制进食;
        public 怪物加强系统? 怪物加强;
        public 居民假期系统? 居民假期;
        public 雷电破坏系统? 雷电破坏系统;
        public 害虫生成系统? 害虫生成;      

        #endregion
        public 开局日志? 开局日志;
        public 功能列表? 功能列表;
        public ModEntry? instance;

        public ModConfig? 配置;

        public override void Entry(IModHelper helper)
        {
            配置 = helper.ReadConfig<ModConfig>();
            instance = this;
            功能列表 = new 功能列表(Monitor, Helper);
            功能列表.Initialize();
            if (配置.启用开局负债)
            {
                开局负债 = new 开局负债(Monitor, Helper);
                开局负债.Initialize();
            }

            if (配置.启用钓鱼限制)
            {
                钓鱼限制 = new 钓鱼限制(Monitor, Helper);
                钓鱼限制.Initialize();
            }

            if (配置.启用移动体力消耗)
            {
                移动体力消耗 = new 移动体力消耗(Monitor, Helper);
                移动体力消耗.Initialize();
            }

            if (配置.启用工具耐久)
            {
                工具耐久 = new 工具耐久(Monitor, Helper);
                工具耐久.Initialize();
            }

            if (配置.启用失眠系统)
            {
                失眠 = new 失眠(Monitor, Helper);
                失眠.Initialize();
            }

            if (配置.启用负重系统)
            {
                负重系统 = new 负重系统(Monitor, Helper);
                负重系统.Initialize();
            }

            if (配置.启用任务过期)
            {
                任务过期系统 = new 任务过期(Monitor, Helper);
                任务过期系统.Initialize();
            }

            if (配置.启用动物饿死)
            {
                动物饿死系统 = new 动物饿死(Monitor, Helper);
                动物饿死系统.Initialize();
            }

            if (配置.启用体力限制进食)
            {
                体力限制进食 = new 体力限制进食(Monitor, Helper);
                体力限制进食.Initialize();
            }

            if (配置.启用怪物加强)
            {
                怪物加强 = new 怪物加强系统(Monitor, Helper);
                怪物加强.Initialize();
            }

            if (配置.启用居民假期)
            {
                居民假期 = new 居民假期系统(Monitor, Helper);
                居民假期.Initialize();
            }

            if (配置.启用雷电破坏)
            {
                雷电破坏系统 = new 雷电破坏系统(Monitor, Helper);
                雷电破坏系统.Initialize();
            }

            if (配置.启用害虫生成)
            {
                害虫生成 = new 害虫生成系统(Monitor, Helper);
                害虫生成.Initialize();
            }
         

            开局日志 = new 开局日志(Monitor, Helper);
            开局日志.Initialize();
        }
        public void 保存配置()
        {
            Helper.WriteConfig(配置);
        }
        public void 重新加载配置()
        {
            配置 = Helper.ReadConfig<ModConfig>();           
        }
        public void 重置配置()
        {
            配置 = new ModConfig();
            Helper.WriteConfig(配置);
        }
    }
}